// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.model.inventory.report;

import com.fowo.api.common.annotaion.DataObjectType;
import com.fowo.api.common.meta.MetaDataObject;
import com.fowo.api.common.meta.MetaDataObjects;
import com.fowo.api.common.model.PageSearch;
import com.fowo.api.common.mybatis.helper.PageSearchHelper;
import com.fowo.api.common.util.ListUtils;
import com.fowo.api.entity.InventoryReport;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

@DataObjectType(InventoryReport.class)
@Setter
@Getter
public class InventoryReportSearchParamPo extends PageSearch {

  private static MetaDataObject metaDataObject;

  @Override
  public void applySqlSegments() {
    if (metaDataObject == null) {
      metaDataObject =
        ListUtils.find(
          MetaDataObjects.getObjects(),
          o -> "InventoryReport".equals(o.getName())
        );
    }
    PageSearchHelper.fillSqlSegments(this, metaDataObject);
  }

  @Override
  public void initFinal() {
    super.initFinal();
    applySqlSegments();
  }

  /**
   * 获取关联字段的查询表别名信息
   */
  @Override
  public Map<String, String> getJoinFieldTableAliasMap() {
    Map<String, String> map = new HashMap<>();
    map.put("stockId", "w");
    map.put("itemId", "p");
    return map;
  }

  @Override
  public Map<String, OptionalJoinField> getOptionalJoinFields() {
    Map<String, OptionalJoinField> map = new HashMap<>();

    return map;
  }

  /**
   * 指定使用特定的视图过滤条件
   * <p>
   * 有效值包括：
   * </p>
   */
  private String byViewName;

  /**
   * 编号
   */
  private Long id;

  /**
   * 最小编号
   */
  private Long idMin;

  /**
   * 最大编号
   */
  private Long idMax;

  /**
   * 编号 比较(eq)
   */
  private Long idEq;
  /**
   * 编号 比较(neq)
   */
  private Long idNeq;
  /**
   * 编号 比较(gt)
   */
  private Long idGt;
  /**
   * 编号 比较(gte)
   */
  private Long idGte;
  /**
   * 编号 比较(lt)
   */
  private Long idLt;
  /**
   * 编号 比较(lte)
   */
  private Long idLte;
  /**
   * 编号 比较(contains)
   */
  private Long idContains;
  /**
   * 编号 比较(notcontains)
   */
  private Long idNotcontains;
  /**
   * 编号 比较(startswith)
   */
  private Long idStartswith;
  /**
   * 编号 比较(endswith)
   */
  private Long idEndswith;
  /**
   * 编号 比较(isnull)
   */
  private Boolean idIsnull;
  /**
   * 编号 比较(isnotnull)
   */
  private Boolean idIsnotnull;

  /**
   * 仓库
   */
  private Long stockId;

  /**
   * 仓库 比较(eq)
   */
  private Long stockIdEq;
  /**
   * 仓库 比较(neq)
   */
  private Long stockIdNeq;
  /**
   * 仓库 比较(gt)
   */
  private Long stockIdGt;
  /**
   * 仓库 比较(gte)
   */
  private Long stockIdGte;
  /**
   * 仓库 比较(lt)
   */
  private Long stockIdLt;
  /**
   * 仓库 比较(lte)
   */
  private Long stockIdLte;
  /**
   * 仓库 比较(contains)
   */
  private Long stockIdContains;
  /**
   * 仓库 比较(notcontains)
   */
  private Long stockIdNotcontains;
  /**
   * 仓库 比较(startswith)
   */
  private Long stockIdStartswith;
  /**
   * 仓库 比较(endswith)
   */
  private Long stockIdEndswith;
  /**
   * 仓库 比较(isnull)
   */
  private Boolean stockIdIsnull;
  /**
   * 仓库 比较(isnotnull)
   */
  private Boolean stockIdIsnotnull;
  /**
   * 仓库的仓库名称 比较(eq)
   */
  private String stockIdNameEq;
  /**
   * 仓库的仓库名称 比较(neq)
   */
  private String stockIdNameNeq;
  /**
   * 仓库的仓库名称 比较(gt)
   */
  private String stockIdNameGt;
  /**
   * 仓库的仓库名称 比较(gte)
   */
  private String stockIdNameGte;
  /**
   * 仓库的仓库名称 比较(lt)
   */
  private String stockIdNameLt;
  /**
   * 仓库的仓库名称 比较(lte)
   */
  private String stockIdNameLte;
  /**
   * 仓库的仓库名称 比较(contains)
   */
  private String stockIdNameContains;
  /**
   * 仓库的仓库名称 比较(notcontains)
   */
  private String stockIdNameNotcontains;
  /**
   * 仓库的仓库名称 比较(startswith)
   */
  private String stockIdNameStartswith;
  /**
   * 仓库的仓库名称 比较(endswith)
   */
  private String stockIdNameEndswith;
  /**
   * 仓库的仓库名称 比较(isnull)
   */
  private Boolean stockIdNameIsnull;
  /**
   * 仓库的仓库名称 比较(isnotnull)
   */
  private Boolean stockIdNameIsnotnull;

  /**
   * 仓库(范围搜索)
   */
  private List<Long> stockIdInList;

  /**
   * 最早创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeStart;

  /**
   * 最晚创建时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date createTimeEnd;

  /**
   * 创建时间 比较(eq)
   */
  private Date createTimeEq;
  /**
   * 创建时间 比较(neq)
   */
  private Date createTimeNeq;
  /**
   * 创建时间 比较(gt)
   */
  private Date createTimeGt;
  /**
   * 创建时间 比较(gte)
   */
  private Date createTimeGte;
  /**
   * 创建时间 比较(lt)
   */
  private Date createTimeLt;
  /**
   * 创建时间 比较(lte)
   */
  private Date createTimeLte;
  /**
   * 创建时间 比较(contains)
   */
  private Date createTimeContains;
  /**
   * 创建时间 比较(notcontains)
   */
  private Date createTimeNotcontains;
  /**
   * 创建时间 比较(startswith)
   */
  private Date createTimeStartswith;
  /**
   * 创建时间 比较(endswith)
   */
  private Date createTimeEndswith;
  /**
   * 创建时间 比较(isnull)
   */
  private Boolean createTimeIsnull;
  /**
   * 创建时间 比较(isnotnull)
   */
  private Boolean createTimeIsnotnull;

  /**
   * 创建人
   */
  private Long createUser;

  /**
   * 最小创建人
   */
  private Long createUserMin;

  /**
   * 最大创建人
   */
  private Long createUserMax;

  /**
   * 创建人 比较(eq)
   */
  private Long createUserEq;
  /**
   * 创建人 比较(neq)
   */
  private Long createUserNeq;
  /**
   * 创建人 比较(gt)
   */
  private Long createUserGt;
  /**
   * 创建人 比较(gte)
   */
  private Long createUserGte;
  /**
   * 创建人 比较(lt)
   */
  private Long createUserLt;
  /**
   * 创建人 比较(lte)
   */
  private Long createUserLte;
  /**
   * 创建人 比较(contains)
   */
  private Long createUserContains;
  /**
   * 创建人 比较(notcontains)
   */
  private Long createUserNotcontains;
  /**
   * 创建人 比较(startswith)
   */
  private Long createUserStartswith;
  /**
   * 创建人 比较(endswith)
   */
  private Long createUserEndswith;
  /**
   * 创建人 比较(isnull)
   */
  private Boolean createUserIsnull;
  /**
   * 创建人 比较(isnotnull)
   */
  private Boolean createUserIsnotnull;

  /**
   * 最早更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeStart;

  /**
   * 最晚更新时间
   */
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date lastUpdateTimeEnd;

  /**
   * 更新时间 比较(eq)
   */
  private Date lastUpdateTimeEq;
  /**
   * 更新时间 比较(neq)
   */
  private Date lastUpdateTimeNeq;
  /**
   * 更新时间 比较(gt)
   */
  private Date lastUpdateTimeGt;
  /**
   * 更新时间 比较(gte)
   */
  private Date lastUpdateTimeGte;
  /**
   * 更新时间 比较(lt)
   */
  private Date lastUpdateTimeLt;
  /**
   * 更新时间 比较(lte)
   */
  private Date lastUpdateTimeLte;
  /**
   * 更新时间 比较(contains)
   */
  private Date lastUpdateTimeContains;
  /**
   * 更新时间 比较(notcontains)
   */
  private Date lastUpdateTimeNotcontains;
  /**
   * 更新时间 比较(startswith)
   */
  private Date lastUpdateTimeStartswith;
  /**
   * 更新时间 比较(endswith)
   */
  private Date lastUpdateTimeEndswith;
  /**
   * 更新时间 比较(isnull)
   */
  private Boolean lastUpdateTimeIsnull;
  /**
   * 更新时间 比较(isnotnull)
   */
  private Boolean lastUpdateTimeIsnotnull;

  /**
   * 更新人
   */
  private Long lastUpdateUser;

  /**
   * 最小更新人
   */
  private Long lastUpdateUserMin;

  /**
   * 最大更新人
   */
  private Long lastUpdateUserMax;

  /**
   * 更新人 比较(eq)
   */
  private Long lastUpdateUserEq;
  /**
   * 更新人 比较(neq)
   */
  private Long lastUpdateUserNeq;
  /**
   * 更新人 比较(gt)
   */
  private Long lastUpdateUserGt;
  /**
   * 更新人 比较(gte)
   */
  private Long lastUpdateUserGte;
  /**
   * 更新人 比较(lt)
   */
  private Long lastUpdateUserLt;
  /**
   * 更新人 比较(lte)
   */
  private Long lastUpdateUserLte;
  /**
   * 更新人 比较(contains)
   */
  private Long lastUpdateUserContains;
  /**
   * 更新人 比较(notcontains)
   */
  private Long lastUpdateUserNotcontains;
  /**
   * 更新人 比较(startswith)
   */
  private Long lastUpdateUserStartswith;
  /**
   * 更新人 比较(endswith)
   */
  private Long lastUpdateUserEndswith;
  /**
   * 更新人 比较(isnull)
   */
  private Boolean lastUpdateUserIsnull;
  /**
   * 更新人 比较(isnotnull)
   */
  private Boolean lastUpdateUserIsnotnull;

  /**
   * 产品
   */
  private Long itemId;

  /**
   * 产品 比较(eq)
   */
  private Long itemIdEq;
  /**
   * 产品 比较(neq)
   */
  private Long itemIdNeq;
  /**
   * 产品 比较(gt)
   */
  private Long itemIdGt;
  /**
   * 产品 比较(gte)
   */
  private Long itemIdGte;
  /**
   * 产品 比较(lt)
   */
  private Long itemIdLt;
  /**
   * 产品 比较(lte)
   */
  private Long itemIdLte;
  /**
   * 产品 比较(contains)
   */
  private Long itemIdContains;
  /**
   * 产品 比较(notcontains)
   */
  private Long itemIdNotcontains;
  /**
   * 产品 比较(startswith)
   */
  private Long itemIdStartswith;
  /**
   * 产品 比较(endswith)
   */
  private Long itemIdEndswith;
  /**
   * 产品 比较(isnull)
   */
  private Boolean itemIdIsnull;
  /**
   * 产品 比较(isnotnull)
   */
  private Boolean itemIdIsnotnull;
  /**
   * 产品的品名 比较(eq)
   */
  private String itemIdNameEq;
  /**
   * 产品的品名 比较(neq)
   */
  private String itemIdNameNeq;
  /**
   * 产品的品名 比较(gt)
   */
  private String itemIdNameGt;
  /**
   * 产品的品名 比较(gte)
   */
  private String itemIdNameGte;
  /**
   * 产品的品名 比较(lt)
   */
  private String itemIdNameLt;
  /**
   * 产品的品名 比较(lte)
   */
  private String itemIdNameLte;
  /**
   * 产品的品名 比较(contains)
   */
  private String itemIdNameContains;
  /**
   * 产品的品名 比较(notcontains)
   */
  private String itemIdNameNotcontains;
  /**
   * 产品的品名 比较(startswith)
   */
  private String itemIdNameStartswith;
  /**
   * 产品的品名 比较(endswith)
   */
  private String itemIdNameEndswith;
  /**
   * 产品的品名 比较(isnull)
   */
  private Boolean itemIdNameIsnull;
  /**
   * 产品的品名 比较(isnotnull)
   */
  private Boolean itemIdNameIsnotnull;

  /**
   * 产品(范围搜索)
   */
  private List<Long> itemIdInList;

  /**
   * 批次号(模糊搜索)
   */
  private String batchNo;

  /**
   * 批次号 比较(eq)
   */
  private String batchNoEq;
  /**
   * 批次号 比较(neq)
   */
  private String batchNoNeq;
  /**
   * 批次号 比较(gt)
   */
  private String batchNoGt;
  /**
   * 批次号 比较(gte)
   */
  private String batchNoGte;
  /**
   * 批次号 比较(lt)
   */
  private String batchNoLt;
  /**
   * 批次号 比较(lte)
   */
  private String batchNoLte;
  /**
   * 批次号 比较(contains)
   */
  private String batchNoContains;
  /**
   * 批次号 比较(notcontains)
   */
  private String batchNoNotcontains;
  /**
   * 批次号 比较(startswith)
   */
  private String batchNoStartswith;
  /**
   * 批次号 比较(endswith)
   */
  private String batchNoEndswith;
  /**
   * 批次号 比较(isnull)
   */
  private Boolean batchNoIsnull;
  /**
   * 批次号 比较(isnotnull)
   */
  private Boolean batchNoIsnotnull;

  /**
   * 批次号(精确搜索)
   */
  private List<String> batchNoInList;

  /**
   * 库存数量
   */
  private java.math.BigDecimal stockQty;

  /**
   * 最小库存数量
   */
  private java.math.BigDecimal stockQtyMin;

  /**
   * 最大库存数量
   */
  private java.math.BigDecimal stockQtyMax;

  /**
   * 库存数量 比较(eq)
   */
  private java.math.BigDecimal stockQtyEq;
  /**
   * 库存数量 比较(neq)
   */
  private java.math.BigDecimal stockQtyNeq;
  /**
   * 库存数量 比较(gt)
   */
  private java.math.BigDecimal stockQtyGt;
  /**
   * 库存数量 比较(gte)
   */
  private java.math.BigDecimal stockQtyGte;
  /**
   * 库存数量 比较(lt)
   */
  private java.math.BigDecimal stockQtyLt;
  /**
   * 库存数量 比较(lte)
   */
  private java.math.BigDecimal stockQtyLte;
  /**
   * 库存数量 比较(contains)
   */
  private java.math.BigDecimal stockQtyContains;
  /**
   * 库存数量 比较(notcontains)
   */
  private java.math.BigDecimal stockQtyNotcontains;
  /**
   * 库存数量 比较(startswith)
   */
  private java.math.BigDecimal stockQtyStartswith;
  /**
   * 库存数量 比较(endswith)
   */
  private java.math.BigDecimal stockQtyEndswith;
  /**
   * 库存数量 比较(isnull)
   */
  private Boolean stockQtyIsnull;
  /**
   * 库存数量 比较(isnotnull)
   */
  private Boolean stockQtyIsnotnull;

  /**
   * 库存金额
   */
  private java.math.BigDecimal stockAmount;

  /**
   * 最小库存金额
   */
  private java.math.BigDecimal stockAmountMin;

  /**
   * 最大库存金额
   */
  private java.math.BigDecimal stockAmountMax;

  /**
   * 库存金额 比较(eq)
   */
  private java.math.BigDecimal stockAmountEq;
  /**
   * 库存金额 比较(neq)
   */
  private java.math.BigDecimal stockAmountNeq;
  /**
   * 库存金额 比较(gt)
   */
  private java.math.BigDecimal stockAmountGt;
  /**
   * 库存金额 比较(gte)
   */
  private java.math.BigDecimal stockAmountGte;
  /**
   * 库存金额 比较(lt)
   */
  private java.math.BigDecimal stockAmountLt;
  /**
   * 库存金额 比较(lte)
   */
  private java.math.BigDecimal stockAmountLte;
  /**
   * 库存金额 比较(contains)
   */
  private java.math.BigDecimal stockAmountContains;
  /**
   * 库存金额 比较(notcontains)
   */
  private java.math.BigDecimal stockAmountNotcontains;
  /**
   * 库存金额 比较(startswith)
   */
  private java.math.BigDecimal stockAmountStartswith;
  /**
   * 库存金额 比较(endswith)
   */
  private java.math.BigDecimal stockAmountEndswith;
  /**
   * 库存金额 比较(isnull)
   */
  private Boolean stockAmountIsnull;
  /**
   * 库存金额 比较(isnotnull)
   */
  private Boolean stockAmountIsnotnull;

  /**
   * 表单名称
   */
  private String formName;

  /**
   * 工作流状态
   */
  private Integer wfStatus;
}
